#ifndef STRINGARRAY_H
#define STRINGARRAY_H

class StringArray
{
public:
  StringArray(const TString str);
  TString PopFront();
  Int_t Length()const {return fstr.Length();}

private:
  void ClearFront();

  TString fstr;
};

StringArray::StringArray(const TString str): fstr(str)
{
  ClearFront();  
}

void StringArray::ClearFront()
{
  fstr.Prepend(' ');
  while(fstr[0]==' '){
    fstr=fstr(fstr.First(' ')+1, fstr.Length());
  }
  //cout<<"StringArray::ClearFront"<<" "<fstr<<" "<<Length()<<endl;
}

TString StringArray::PopFront()
{
  fstr.Append(' ');
  const TString tmptn(fstr(0, fstr.First(' ')));
  fstr = fstr(fstr.First(' '), fstr.Length());
  ClearFront();

  return tmptn;
}

//tested with
//TString tnames("  abc 123   ere 09  ")
//TString tnames("  abc 123   ere 09")
//TString tnames("abc 123   ere 09")
//TString tnames(" abc 123   ere 09")

#endif
